home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
dora
/
doraupld.plp
< prev
next >
Wrap
Text File
|
1993-11-30
|
12KB
|
446 lines
/* プロンプト終了待ち共通処理 */
%PROwait1{
wait(Wtime2,{type(@read(text))},{60},{type(@read(text))});
type({\n//\n});PROwait2
};
%PROwait2{
loop ({
wait({3},{im({Yes})},
{,\,#,?,0},{wait(1);type({0|W\n});im({No})},
{編集終了},{wait({3},,{>},{type({0|W\n});im({No})});},
{おわり},{wait({3},,{>},{type({0|W\n});im({No})});},
{自動署名をしますか},
{wait({3},,{>},{type({N|0|W\n});im({No})});}
);
});
loop ({
wait ({3},{type({\n});im({Yes})},
{>},{type({0|Q\n});im({No})},
{,?,0},{type({0|Q\n});im({No})}
);
});
};
%PROwait3{
loop ({
wait({3},{im({Yes})},
{,\,#,?,0},{wait(1);type({0|0|Y\n});im({No})}
,{0:quit},{wait(1);type({0|Y\n});im({No})}
);
});
loop ({
wait ({3},{type({\n});im({Yes})},
{>},{type({0|Q\n});im({No})},
{,?,0},{type({0|Q\n});im({No})}
);
});
};
/* ボードNo.を指定してメッセージをアップする */
%FORUMup{
[forum,mesno,replyto,title,text]
var reply [5]; reply:=replyto;
case (reply<1||reply>9999||reply={},
{No},
{
footnote(forum|{のボードNo.}|mesno|{番のNo.}|reply|{にコメントします});
case (forum=NET,
{Yes},{type({B|#}|mesno|{|R|}|reply|{|}|title|{\n})},
{No},{type({B|#}|mesno|{|}|forum|{|R|}|reply|{|}|title|{\n})}
);
wait(Wtime2,
,{指定が間違っています},{PROwait3}
,{パスワードが違います},{type({Q\n})}
,{既にこのメッセージにはレスポンスが有ります},
{type({E|}|title|{\n});type({Y|N\n});PROwait1}
,{[Y]},{type({Y|N\n});PROwait1});
},
{Yes},
{
footnote(forum|{のボードNo.}|mesno|{番にアップロードします});
case (forum=NET,
{Yes},{type({B|#}|mesno|{|E|}|title|{\n})},
{No},{type({B|#}|mesno|{|}|forum|{|E|}|title|{\n})}
);
wait(Wtime2,
,{パスワードが違います},{type({Q\n})}
,{[Y]},{type({Y|N\n});PROwait1});
})};
/* アクセスユーザーの確認 & 爆裂トーク攻撃 */
%BENONup{
[sendto,text]
/* 爆裂トーク前処理 */
%preBenon{
WhoRes:=@read(TEMP2|{_whotext.tmp});IDbak:={};
%ckWho{[BID,Bfil]
var n[3];
loop ({ n:=n+1;
%a @getline(WhoRes,n,1);
case (a={},
{Yes},{footnote(BID|{はアクセスしていません});
case (BID<>{},
{Yes},
{
case (IDbak<>{},
{Yes},{IDbak:=IDbak|{,}|BID},
{No},{IDbak:=BID}
);
});im({No})
},,
{case (@head(@getchar(a,6,8),{ })
=@head(@getchar(BID,1,10),{ }),
{Yes},
{
footnote(BID|{を攻撃します});
sendBenon(@getchar(a,4,1),@getchar(a,15,8),Bfil)
},
{No},{footnote({取得データの}|n|
{行目を確認中});im({Yes})}
)
});
});
};
footnote(sendto|{に爆裂トーク攻撃をします});
IDlist:=sendto;
loop ({
ckWho(@head(IDlist,{,}),text);
IDlist:=@body(IDlist,{,});
case (IDlist={},
{Yes},{im({No})},
{No},{im({Yes})}
);
});
};
/* 爆裂トーク処理 */
%sendBenon{[chNo,HanDle,DenPou]
wait(1);type({T\n});
loop ({
wait ({3},{im({Yes})},
{チャンネルを指定して下さい}
,{type(chNo|{\n});im({Yes})},
{トークモードに入りました。}
,{
%nowhh @getchar(@daylong,16,2);
case (4>=nowhh || nowhh>18,
{Yes},{type({今晩は、}|HanDle|{さん!\n})},
{No},{
case (10>=nowhh || nowhh>4,
{Yes},{type({お早ようございます、}
|HanDle|{さん!\n})},
{No},{case (18>=nowhh || nowhh>10,
{Yes},{type({今日は、}
|HanDle|{さん!\n})}
);
});
});
send(DenPou);type({\n//\n});im({Yes})
},
{トークモードを終了しました。},{im({Yes})},
{,?,0},{im({No})},
{メイン},{im({No})},
{メイン},{im({No})},
{MAIN},{im({No})}
)
});
};
DOWNCHECK;delfile(TEMP2|{_whotext.tmp});
receive(TEMP2|{_whotext.tmp});CHeck:={Yes};type({W\n});
footnote({現在}|NET|{-NETにアクセス中のユーザーを確認します});
loop ({
wait ({3},{im({Yes})},
{,?,O},{DOWNSTOP;im({No})}
)
});
case (ESCon={No},
{No}, {dispoff(!DEBUG);command({escctr -d}|TEMP2|{ -K}|TEMP2|{ }|
TEMP2|{_whotext.tmp});dispoff({No})
},,
);
case (text={},
{Yes},{footnote({爆裂トーク文章が未設定です})},
{No},
{case (@filechk(TEMP2|{_whotext.tmp})={},
{Yes},
{footnote({アクセスデータの読み込みに失敗しました})},
{No},{footnote({爆裂トーク処理をします});preBenon}
)
})
};
/* メールをアップする */
%MAILup{[sendto,title,text]
%MUP {[MID]
footnote(MID|{へメールを送ります});
type({ME|}|MID|{|}|title|{\n});
wait(Wtime2,,
{[Y]},{type({Y|N\n});footnote({メール送信中});
wait(Wtime2,,{60},{});
case(text,{},,,{send(text)});
type({\n//\n});
PROwait2},
{IDの指定が違います}
,{wait(Wtime2,,{quit},{type({0|0|Q\n});wait(3)})},
{quit},{type({\n})})
};
IDbak:=@im(sendto|{,});
loop ({
MUP(@head(IDbak,{,}));
IDbak:=@body(IDbak,{,});
case (IDbak={},
{Yes},{im({No})},
{No},{im({Yes})}
);
});
};
/* プロフィール情報をアップする */
%PROFup{[text]
footnote(ID|{のプロフィール情報を登録します});type({P|W|N\n});
wait(Wtime2,{AbortOff({\nホストがおもいよ~\n})},{60},{});
case(text,{},,,{send(text)});type({\n//\n});
PROwait2;
};
/* メモ書き込み情報をアップする */
%MEMOup{[text]
footnote({メモ書き込み情報に}|@read(text)|{を登録します});wait(2);
type({\\\n});
wait(Wtime2,{type(@read(text))},{[RET]},{type(@read(text))});
type({\n});wait(2)};
/* データライブラリにアップする */
%sento{ wait({300},,{で中断},{sendy(datafile);
loop ({
wait({3},{im({Yes})}
,{に失敗},{
footnote({m(_._)m ペコリ>ユーザー様});im({No});
write(UP2|{_mopres.rsv},{保留;}|linebuf)
}
,{に成功},{footnote({アップロードを終了しました。});im({No})})
});
wait(Wtime2,{type({0|Q\n})},{,nn,?,0},{wait(3);type({0|Q\n})})})
};
%LIBup1{[forumlib,libno,dataname,keyword,docfile,datafile]
%otto2 {SNDMSG({okasi_f.snd});wait(2);
write(UP2|{_mopres.rsv},{保留;}|linebuf);
display({\n☆ファイル名に日本語が入っているとホストが受け付け}|
{てくれない様です、次の処理を行います\n});type({\n});
};
%otto {SNDMSG({okasi_f.snd});wait(2);
write(UP2|{_mopres.rsv},{保留;}|linebuf);
display({\n☆ライブラリ番号が違う or ファイル名が重複して}|
{いる or ファイル名に日本語が入っているとホストが}| {受け付けてくれない の為、次の処理を行います\n});type({\n});
wait(Wtime2,
,{0:quit},{
type({0\n});wait(Wtime2,,{,H,nn,?,0},{type({0|Q\n})})
}
,{,?,Q},{type({Q\n})}
,{,H,nn,?,0},{type({0|Q\n})})
};
type({\n});
wait(Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},{,?,}
,{
case (forumlib=NET,
{Yes},{type({F#}|libno|{|U|}|dataname|{|}|keyword|{\n})},
{No},{type({F#}|libno|{|}|forumlib|{|U|}|dataname|
{|}|keyword|{\n})}
);
});
wait(Wtime2,
,{/N) >},
{
case (@filechk(docfile),
{Yes},
{
type({Y|N\n});
wait(Wtime2,{AbortOff({ホストがおもいよ~\n})},{60},{});
case(docfile,{},,,{type(@read(docfile))});
type({\n//\n});
wait(Wtime2,{type({\n})}
,{,?,0},{type({0|W\n})}
,{/N) >},{type({N|0|W\n})})
},
{No},{type({N\n})}
);
wait(Wtime2,,{Protocol},{wait(1);type({Y\n})});sento
}
,{Protocol},{wait(1);type({Y\n});sento}
,{ファイル名を入力して下さい},{otto}
,{そのファイルは既に存在します},{otto}
,{ボードが見つかりません},{otto}
,{ボードの指定が違います},{otto}
,{パスワードが違います},{otto})
};
%DLIBup{[forumlib,libno,dataname,keyword,docfile,datafile]
case (forumlib<>{} && dataname<>{} && keyword<>{}
&& @filechk(datafile),
{Yes},
{footnote(forumlib|{の}|libno|
{番ライブラリにアップロードします});
LIBup1(forumlib,libno,dataname,keyword,docfile,datafile)
},
{No},
{display({必要なデータが揃っていないため}|
{次の処理へスキップします\n});
write(UP2|{_mopres.rsv},{保留;}|linebuf);
})
};
%SMAILup{[title,text]
case ( @filechk(text),
{Yes},{footnote({シスオペ宛メールのアップロード中});
case(title={},{No},{
type({ME|SYSOP|}|title|{\n});
type({Y|N\n});footnote({メール送信中});
wait(Wtime2,{type(@read(text))},{60},{type(@read(text))});
type({\n//\n});
PROwait2;
},
{Yes},{footnote({タイトルが未記入です})})},
{No},{display({必要なデータが揃っていないため}|
{次の処理へスキップします\n})}
)};
/* 制御ファイルの内容に従って自動アップロードする */
/* アップロードするテキストファイル名を決定する */
%UPtext{[fname]
case (@filechk(fname),
{Yes},{im(fname)},
{No},
{
SNDMSG({okasi_f.snd});
display(fname|{がありません\n});
im({});
});
};
/* アップ先の振り分け */
%AUTOup1{case (@head(linebuf,{=}),
{forum},
{var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case (@head(FILE,{,})<>{},
{Yes},
{FORUMup(
@head(@body(linebuf,{forum=},{;}),{;}),
@head(@body(linebuf,{mes=},{;}),{;}),
@head(@body(linebuf,{reply=},{;}),{;}),
@body(linebuf,{title=},{\n}),
@UPtext(@head(FILE,{,})))
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{benon},
{
var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case(@head(FILE,{,})<>{},
{Yes},
{BENONup (
@head(@body(linebuf,{benon=},{;}),{;}),
@UPtext(@head(FILE,{,}))
)
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{mail},
{
var FILE [256];
FILE:=@head(@body(linebuf,{file=},{;}),{;});
loop ({
case(@head(FILE,{,})<>{},
{Yes},
{MAILup (
@head(@body(linebuf,{mail=},{;}),{;}),
@body(linebuf,{title=},{\n}),
@UPtext(@head(FILE,{,}))
)
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{profile},
{PROFup(@UPtext(@tail(linebuf,{file=},{;})));im({Yes})
},
{whomemo}, /*書き込みメモをアップ */
{MEMOup(@UPtext(@tail(linebuf,{file=},{;})));im({Yes})
},
{forumlib},
{var FILE [256];
FILE:=@tail(linebuf,{datafile=},{;});
loop ({case (@head(FILE,{,})<>{},
{Yes},
{DLIBup(
@tail(linebuf,{forumlib=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{dataname=},{;}),
@tail(linebuf,{keyword=},{;}),
@UPtext(@tail(linebuf,{docfile=},{;})),
@UPtext(@head(FILE,{,})))
});
FILE:=@body(FILE,{,});im(FILE<>{});
});
im({Yes});
},
{sysmail},
{
SMAILup (@body(linebuf,{title=},{\n}),
@UPtext(@head(@body(linebuf,{file=},{;}),{;})));
im({Yes});
},
{},{im({No})}, /* 空文字列なら終了 */
,{im({Yes})} /* それ以外なら次の行を読む */
);
};
%AUTOup {[file]
case (@filechk(file),
{Yes},
{wait(5);delfile(UP2|{_mopres.rsv});
line:=0;
loop ({
line:=line+1;linebuf:={};
linebuf:=@read(file,line,1);
case (@getchar(linebuf,1,5)={保留;},
{Yes},
{write(UP2|{_mopres.rsv},linebuf);im({Yes})},
{No},
{AUTOup1;
/*爆裂未処理IDは予約に再登録*/ case (IDbak<>{},
{Yes},
{linebuf:={benon=}|IDbak|{;file=}|
@head(@body(linebuf,{file=},{;}),{;})|
{;\n};
/* 未処理IDをデフォルトにする */ IDbak:={};
write(UP2|{_mopres.rsv},linebuf)},,
);
},
);
});
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
});
};
/* アップロード制御ファイルの有無の判定処理 */
%AUTOUPLD{
footnote({自動アップロードを開始します});
case (@filechk(UP2|{_mopres.ctl}),
{Yes},
{
AUTOup(UP2|{_mopres.ctl});
footnote({自動アップロードを終了しました});
delfile(UP2|{_mopres.bak});
renname(UP2|{_mopres.ctl},{_mopres.bak});
case (@filechk(UP2|{_mopres.rsv}),
{Yes},
{renname(UP2|{_mopres.rsv},{_mopres.ctl})}
);
});
};
var line[3];
var linebuf[258];
var IDbak[80]; /* 爆裂トーク & メールup未処理IDリスト */
AUTOUPLD;